﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

using Gra.Seguros.Servicio.Bl;
using Gra.Seguros.Servicio.Be;
using Gra.Seguros.Servicio.Ws.Be;

namespace Gra.Seguros.Servicio.Ws
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IPolizaSeguro" in both code and config file together.
    [ServiceContract]
    public interface IPolizaSeguro
    {
        [OperationContract]
        [WebInvoke(UriTemplate = "listarMonedas",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<MonedaWs> listarMonedas();

        [OperationContract]
        [WebInvoke(UriTemplate = "listarRenovacion",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<RenovacionWs> listarRenovacion();

        [OperationContract]
        [WebInvoke(UriTemplate = "listarEstadoPoliza",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<EstadoPolizaWs> listarEstadoPoliza();

        [OperationContract]
        [WebInvoke(UriTemplate = "listarPCTComision/{_cAseguradora}",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<PCTComisionWs> listarPCTComision(string _cAseguradora);


        [OperationContract]
        [WebInvoke(UriTemplate = "listarPCTComisionVen/{_cVendedor}",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<PCTComisionVenWs> listarPCTComisionVen(string _cVendedor);


        [OperationContract]
        [WebInvoke(UriTemplate = "listarPlanSeguro_Ramo/{_cAseguradora}/{_cRamo}",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<PlanSeguroWs> listarPlanSeguro_Ramo(string _cAseguradora,string _cRamo);


        [OperationContract]
        [WebInvoke(UriTemplate = "listarTipoPago",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<TipoPagoWs> listarTipoPago();



        [OperationContract]
        [WebInvoke(UriTemplate = "listarFormaPago/{_cTipoPago}",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<FormaPagoWs> listarFormaPago(string _cTipoPago);


        [OperationContract]
        [WebInvoke(UriTemplate = "listarVendedor",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<VendedorWs> listarVendedor();


        [OperationContract]
        [WebInvoke(UriTemplate = "listarPolizaxnumPoliza/{_cPoliza}",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<PolizaWs> listarPolizaxnumPoliza(string _cPoliza);


        [OperationContract]
        [WebInvoke(UriTemplate = "listarClientePoliza/{_cCliente}",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<PolizaWs> listarClientePoliza(string _cCliente);

        
        [OperationContract]
        [WebInvoke(UriTemplate = "listarClientePolizaCronograma/{_cCliente}/{_cPoliza}",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
         List<PolizaWs> listarClientePolizaCronograma(string _cCliente, string _cPoliza);

        
        [OperationContract]
        [WebInvoke(UriTemplate = "listarClientePolizaSiniestro/{_cCliente}",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
       List<SiniestroWs> listarClientePolizaSiniestro(string _cCliente);

        
        [OperationContract]
        [WebInvoke(UriTemplate = "listarClientePolizaVisita/{_cCliente}",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<VisitaWs> listarClientePolizaVisita(string _cCliente);
        

        [OperationContract]
        [WebInvoke(UriTemplate = "registrarPoliza",
                  Method = "POST",
                  ResponseFormat = WebMessageFormat.Json,
                  RequestFormat = WebMessageFormat.Json)]
        string registrarPoliza(PolizaWs _PolizaWs);


        [OperationContract]
        [WebInvoke(UriTemplate = "actualizarPoliza",
                  Method = "POST",
                  ResponseFormat = WebMessageFormat.Json,
                  RequestFormat = WebMessageFormat.Json)]
        string actualizarPoliza(PolizaWs _PolizaWs);

 

   
        [OperationContract]
        [WebInvoke(UriTemplate = "listarPoliza/{_cPoliza}/{_fCreacionInicio}/{_fCreacionFin}/{_cCliente}/{_cTipoSeguro}/{_cRamo}/{_cEjecutivo}/{_cEstado}",
                Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
        List<PolizaWs> listarPoliza(string _cPoliza, string _fCreacionInicio, string _fCreacionFin, string _cCliente, string _cTipoSeguro, string _cRamo, string _cEjecutivo, string _cEstado);
    }
  
}
